﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
using BuscadorDePreco.DataContract;
using BuscadorDePreco.Data;

namespace BuscadorDePreco
{
    public partial class CadastrarProduto : System.Web.UI.Page
    {
        private int idCadastrado;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                idCadastrado = -1;
                RecuperaMarcas();
            }
        }

        protected void CadastrarBtn_Click(object sender, EventArgs e)
        {
            ProdutoData data = new ProdutoData();
            data.Nome = NomeProdutoTb.Text;
            data.MarcaId = int.Parse(MarcaDDL.SelectedValue);

            if (!string.IsNullOrEmpty(DescricaoTb.Text))
                data.Descricao = DescricaoTb.Text;

            if (!string.IsNullOrEmpty(DetalhesTb.Text))
                data.Detalhes = DetalhesTb.Text;

            if (!string.IsNullOrEmpty(CodigoDeBarrasTb.Text))
                data.CodigoDeBarras = CodigoDeBarrasTb.Text;

            try
            {
                ProdutoTableAdapter produtoTA = new ProdutoTableAdapter();
                idCadastrado = produtoTA.AdicionarProduto(data);
            }
            catch
            {
                ResultadoCadastroLbl.ForeColor = Color.Red;
                ResultadoCadastroLbl.Text = "Erro ao realizar o cadastro!";
            }

            ResultadoCadastroLbl.Text = "Cadastro realizado com sucesso!";
            ResultadoCadastroLbl.Visible = true;
        }

        #region Private Methods

        private void RecuperaMarcas()
        {
            MarcaTableAdapter marcaTA = new MarcaTableAdapter();
            MarcaDDL.DataValueField = "Id";
            MarcaDDL.DataTextField = "Nome";

            List<MarcaData> marcas = new List<MarcaData>();
            marcas.Add(new MarcaData() { Id = null, Nome = "Selecione uma marca" });
            marcas.AddRange(marcaTA.RecuperarMarcas());
            MarcaDDL.DataSource = marcas;
            MarcaDDL.DataBind();
        }

        #endregion
    }
}